package jp.aztech.android.kawasakiwelfare;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * 天気の ImageView
 * クリックすると、明日の天気、明後日の天気が表示される
 * モックアップなので、予め用意された天気を使用する
 */
public class WeatherView extends ImageView {
	private final static String TAG  = "WeatherView";

	/* Context */		
	private Context mContext;
	
	/* タイトルの TextView */	
	private TextView mTextViewTitle;
	
	/* ポインタ */
	private int pointer = 0;

	/**
	 * ===コンストラクタ ===
	 */  
	public WeatherView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		initView( context );
	}
	
	/**
	 * ===コンストラクタ ===
	 */  	
	public WeatherView(Context context, AttributeSet attrs) {
		super(context, attrs);
		initView( context );
	}

	/**
	 * ===コンストラクタ ===
	 */  	        
	public WeatherView(Context context ) {
     	super(context);
     	initView( context );
	}

	/**
	 * 初期設定
	 */
	private void initView(Context context ) {
     	mContext = context;
	}

	/**
	 * タイトルの TextView を設定する
	 */ 
    public void setTextViewTitle( TextView v ) {
		mTextViewTitle = v;
	}

	/**
	 * 開始：天気を表示する
	 */ 
    public void start() {
     	drawImage();
	}
    
    /**
	 * === onTouchEvent ===
	 */  
	@Override 
    public boolean onTouchEvent(MotionEvent event) {
    	switch ( event.getAction() ) {
    	    // downのとき、ポインタを更新し、天気を表示する
        	case MotionEvent.ACTION_DOWN :
        		upPointer();
        		drawImage();
                break;        	
        	
        	case MotionEvent.ACTION_MOVE :
                break;
                
        	case MotionEvent.ACTION_UP :
                break;
		}           
        return true;
    }    	

	/**
	 * ポインタを更新する
	 */  
	private void upPointer() {
		pointer ++;
		if ( pointer > 2 ) {
			pointer = 0;
		}
	}

	/**
	 * 天気を表示する
	 */ 	
	private void drawImage() {
		int image_id = 0;
		int title_id = 0;
		switch ( pointer ) {
			// 明日の天気
			case 1:
				image_id = R.drawable.weather_cloudy;
				title_id = R.string.weather_tomorrow;
				break;

			// 明後日の天気			
			case 2:
				image_id = R.drawable.weather_rain;
				title_id = R.string.weather_day_after_tomorrow;
				break;	

			// 今日の天気	
			case 0:		
			default:
				image_id = R.drawable.weather_fine;
				title_id = R.string.weather_today;
				break;	
		}
		
		setImageResource( image_id );	
	    mTextViewTitle.setText( title_id );	
    } 
}